#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    string str1;
    string str2;
    string max_sub;
    getline(cin, str1);
    getline(cin, str2);
    
    for (int last = 0; last<str1.size(); ++last)
    {
        for (int fast = last; fast<str1.size(); ++fast)
        {
            str1[last];
            str1[fast];
            if (str2.find(str1.substr(last, fast)) != string::npos)
            {
                if ((fast - last) > max_sub.size())
                {
                    max_sub = str1.substr(last, fast);
                }
            }
        }
    }
    
    cout << max_sub << endl;
    
    return 0;
}

// #include <iostream>
// #include <vector>
// using namespace std;

// int getWater(int n)
// {
//     if (n < 3)
//     {
//         return 0;
//     }
    
//     vector<int> water(n+1);
//     for (int i = 3; i<=n; ++i)
//     {
//         int tmp = 0;
//         for (int j = water[i - 2]; j/3>0; j = water[j])
//         {
//             tmp += water[j];
//         }
//         if (i % 3 == 0)
//             water[i] = tmp + 1;
//         else
//             water[i] = tmp;
//     }
//     return water[n];
// }

// int main()
// {
//     int n = 0;
//     while (cin >> n)
//     {
//         if (n == 0)
//         {
//             break;
//         }
        
//         cout << getWater(n) << endl;
//     }
//     return 0;
// }